<template>
    <div class="app-container">
        <!-- 头部Head组件 -->
        <mt-header fixed title="my first vue project">
            <!-- 返回按钮 -->
            <span slot="left" @click="goback" v-show="flag">
                <mt-button icon="back">返回</mt-button>
            </span>
        </mt-header>

        <!-- 中间部分的组件 -->
        <transition>
            <router-view></router-view>
        </transition>

        <!-- 尾部Tabbar组件 -->
        <nav class="mui-bar mui-bar-tab">
            <router-link class="mui-tab-item-tmq" to="/home">
                <span class="mui-icon mui-icon-home"></span>
                <span class="mui-tab-label">首页</span>
            </router-link>
            <router-link class="mui-tab-item-tmq" to="/member">
                <span class="mui-icon mui-icon-contact"></span>
                <span class="mui-tab-label">会员</span>
            </router-link>
            <router-link class="mui-tab-item-tmq" to="/shoppingcar">
                <span class="mui-icon mui-icon-extra mui-icon-extra-cart">
                  <span class="mui-badge" id="badge">{{$store.getters.getCount}}</span>
                </span>
                <span class="mui-tab-label">购物车</span>
            </router-link>
            <router-link class="mui-tab-item-tmq" to="/search">
                <span class="mui-icon mui-icon-search"></span>
                <span class="mui-tab-label">搜索</span>
            </router-link>
        </nav>
    </div>
</template>


<script>
    export default {
        data() {
            return {
                flag: false
            }
        },
        created() {
            //这里是为了解决刷新一下后，渲染的“返回的组件会消失的问题”
            //当页面刚渲染出来的时候，判断页面路由是否为“/home”，是的话就把“返回”组件隐藏，不是就不隐藏
            this.flag = this.$route.path === "/home" ? false : true;
        },
        methods: {    //点击返回，后退
            goback() {
                this.$router.go(-1);
            }
        },
        //watch需要与methods平级
        //监控路由变化，如果路由切换到了主目录下，就把“返回”组件隐藏
        watch: {
            "$route.path": function (newval) {
                if (newval === "/home") {
                    this.flag = false;
                } else {
                    this.flag = true;
                }
            }
        }
    }
</script>


<style scoped lang='scss'>
    .mint-header {
        z-index: 99;
    }

    .app-container {
        padding-top: 40px;
        padding-bottom: 50px;
        overflow-x: hidden;
    }

    .v-enter {
        opacity: 0;
        transform: translateX(100%);
    }

    .v-leave-to {
        opacity: 0;
        translate: transfromX(-100%);
        position: absolute;
    }

    .v-enter-active,
    .v-leave-active {
        transition: all 0.5s ease;
    }

    // 该类名，解决 tabbar 点击无法切换的问题
    .mui-bar-tab .mui-tab-item-tmq.mui-active {
        color: #007aff;
    }

    .mui-bar-tab .mui-tab-item-tmq {
        display: table-cell;
        overflow: hidden;
        width: 1%;
        height: 50px;
        text-align: center;
        vertical-align: middle;
        white-space: nowrap;
        text-overflow: ellipsis;
        color: #929292;
    }

    .mui-bar-tab .mui-tab-item-tmq .mui-icon {
        top: 3px;
        width: 24px;
        height: 24px;
        padding-top: 0;
        padding-bottom: 0;
    }

    .mui-bar-tab .mui-tab-item-tmq .mui-icon ~ .mui-tab-label {
        font-size: 11px;
        display: block;
        overflow: hidden;
        text-overflow: ellipsis;
    }
</style>